home *** CD-ROM | disk | FTP | other *** search
/ PD Collection CD 1 / PD Collection CD 1.iso / textual / tex / files / !tex / latexsty2 / ITVANILL / STY
Encoding:
Text File  |  1991-02-10  |  22.5 KB  |  551 lines

  1. % VANILLA.STY
  2. % COPYRIGHT (C) 1985, 1986 BY MICHAEL SPIVAK
  3. % version date 1/1/86
  4. %
  5. % 15 Settembre 1986
  6. % Variazioni per l'italiano a cura della TeCoGraf - Milano
  7. % Ogni modifica al testo e` preceduta dal commento `% Mod-It'
  8. %
  9. \catcode`\@=11
  10. \font\tensmc=amcsc10
  11. \def\smc{\tensmc}
  12. \def\pagewidth#1{\hsize= #1 }
  13. \def\pageheight#1{\vsize= #1 }
  14. \def\hcorrection#1{\advance\hoffset by #1 }
  15. \def\vcorrection#1{\advance\voffset by #1 }
  16. \def\wlog#1{}
  17. \newif\iftitle@
  18. \outer\def\title{\title@true\vglue 24\p@ plus 12\p@ minus 12\p@
  19.    \bgroup\let\\=\cr\tabskip\centering
  20.    \halign to \hsize\bgroup\tenbf\hfill\ignorespaces##\unskip\hfill\cr}
  21. \def\endtitle{\cr\egroup\egroup\vglue 18\p@ plus 12\p@ minus 6\p@}
  22. \outer\def\author{\iftitle@\vglue -18\p@ plus -12\p@ minus -6\p@\fi\vglue
  23.     12\p@ plus 6\p@ minus 3\p@\bgroup\let\\=\cr\tabskip\centering
  24.     \halign to \hsize\bgroup\smc\hfill\ignorespaces##\unskip\hfill\cr}
  25. \def\endauthor{\cr\egroup\egroup\vglue 18\p@ plus 12\p@ minus 6\p@}
  26. \outer\def\heading{\bigbreak\bgroup\let\\=\cr\tabskip\centering
  27.     \halign to \hsize\bgroup\smc\hfill\ignorespaces##\unskip\hfill\cr}
  28. \def\endheading{\cr\egroup\egroup\nobreak\medskip}
  29. \outer\def\subheading#1{\medbreak\noindent{\tenbf\ignorespaces
  30.       #1\unskip.\enspace}\ignorespaces}
  31. \outer\def\proclaim#1{\medbreak\noindent\smc\ignorespaces
  32.     #1\unskip.\enspace\sl\ignorespaces}
  33. \outer\def\endproclaim{\par\ifdim\lastskip<\medskipamount\removelastskip
  34.   \penalty 55 \fi\medskip\rm}
  35. \outer\def\demo#1{\par\ifdim\lastskip<\smallskipamount\removelastskip
  36.     \smallskip\fi\noindent{\smc\ignorespaces#1\unskip:\enspace}\rm
  37.       \ignorespaces}
  38. \outer\def\enddemo{\par\smallskip}
  39. \newcount\footmarkcount@
  40. \footmarkcount@=1
  41. \def\makefootnote@#1#2{\insert\footins{\interlinepenalty=100
  42.   \splittopskip=\ht\strutbox \splitmaxdepth=\dp\strutbox 
  43.   \floatingpenalty=\@MM
  44.   \leftskip=\z@\rightskip=\z@\spaceskip=\z@\xspaceskip=\z@
  45.   \noindent{#1}\footstrut\rm\ignorespaces #2\strut}}
  46. \def\footnote{\let\@sf=\empty\ifhmode\edef\@sf{\spacefactor
  47.    =\the\spacefactor}\/\fi\futurelet\next\footnote@}
  48. \def\footnote@{\ifx"\next\let\next\footnote@@\else
  49.     \let\next\footnote@@@\fi\next}
  50. \def\footnote@@"#1"#2{#1\@sf\relax\makefootnote@{#1}{#2}}
  51. \def\footnote@@@#1{$^{\number\footmarkcount@}$\makefootnote@
  52.    {$^{\number\footmarkcount@}$}{#1}\global\advance\footmarkcount@ by 1 }
  53. \def\PCTeX{PC\,\TeX}
  54. \hyphenation{man-u-script man-u-scripts ap-pen-dix ap-pen-di-ces}
  55. \hyphenation{data-base data-bases}
  56. \ifx\amstexloaded@\relax\catcode`\@=13 
  57.   \endinput\else\let\amstexloaded@=\relax\fi
  58. \newlinechar=`\^^J
  59. \def\eat@#1{}
  60. \def\Space@.{\futurelet\Space@\relax}
  61. \Space@. % 
  62. % Mod-It
  63. \newhelp\athelp@
  64. {Conosco solo alcuni comandi che iniziano con @.^^J
  65. Intendevi forse ottenere @ in stampa battendo \string\@?^^J
  66. Ho ignorato tutti i caratteri inseriti di seguito alla @.}
  67. \def\futureletnextat@{\futurelet\next\at@}
  68. {\catcode`\@=\active
  69. \lccode`\Z=`\@ \lowercase
  70. {\gdef@{\expandafter\csname futureletnextatZ\endcsname}
  71. \expandafter\gdef\csname atZ\endcsname
  72.    {\ifcat\noexpand\next a\def\next{\csname atZZ\endcsname}\else
  73.    \ifcat\noexpand\next0\def\next{\csname atZZ\endcsname}\else
  74.     \def\next{\csname atZZZ\endcsname}\fi\fi\next}
  75. \expandafter\gdef\csname atZZ\endcsname#1{\expandafter
  76.    \ifx\csname #1Zat\endcsname\relax\def\next
  77.      {\errhelp\expandafter=\csname athelpZ\endcsname % Mod-it
  78.       \errmessage{Uso di \string@ errato}}\else
  79.        \def\next{\csname #1Zat\endcsname}\fi\next}
  80. \expandafter\gdef\csname atZZZ\endcsname#1{\errhelp
  81.     \expandafter=\csname athelpZ\endcsname
  82.       \errmessage{Uso di \string@ errato}}}}         % Mod-It
  83. \def\atdef@#1{\expandafter\def\csname #1@at\endcsname}
  84. % Mod-It
  85. \newhelp\defahelp@{Forse hai battuto \string\define\space cs al posto di
  86. \string\define\string\cs\space^^J
  87. Ho sostituito quindi un comando inaccessibile cosi` che la tua^^J
  88. definizione possa essere completata senza creare confusione.^^J
  89. Se batti \string\define{\string\cs} il comando inaccessibile^^J
  90. viene definito essere \string\cs, ed il resto della definizione^^J
  91. e` inteso come testo di input.}
  92. % Mod-It
  93. \newhelp\defbhelp@{Ignoro la tua definizione, perche` potrebbe ^^J
  94. essere in conflitto con quella gia` definita.}
  95. \def\define{\futurelet\next\define@}
  96. % Mod-It
  97. \def\define@{\ifcat\noexpand\next\relax
  98.   \def\next{\define@@}%
  99.   \else\errhelp=\defahelp@
  100.   \errmessage{\string\define\space deve essere seguito da un
  101.      comando}\def\next{\def\garbage@}\fi\next}
  102. \def\undefined@{}
  103. \def\preloaded@{}    
  104. % Mod-It
  105. \def\define@@#1{\ifx#1\relax\errhelp=\defbhelp@
  106.    \errmessage{\string#1\space gia` definito}\def\next{\def\garbage@}%
  107.    \else\expandafter\ifx\csname\expandafter\eat@\string
  108.          #1@\endcsname\undefined@\errhelp=\defbhelp@
  109.    \errmessage{\string#1\space non puo` essere definito}\def\next{\def\garbage@}%
  110.    \else\expandafter\ifx\csname\expandafter\eat@\string#1\endcsname\relax
  111.      \def\next{\def#1}\else\errhelp=\defbhelp@
  112.      \errmessage{\string#1\space gia` definito}\def\next{\def\garbage@}%
  113.       \fi\fi\fi\next}
  114. \def\famzero{\fam\z@}
  115. \def\arccos{\mathop{\famzero arccos}\nolimits}
  116. \def\arcsin{\mathop{\famzero arcsin}\nolimits}
  117. \def\arctan{\mathop{\famzero arctan}\nolimits}
  118. \def\arg{\mathop{\famzero arg}\nolimits}
  119. \def\cos{\mathop{\famzero cos}\nolimits}
  120. \def\cosh{\mathop{\famzero cosh}\nolimits}
  121. \def\cot{\mathop{\famzero cot}\nolimits}
  122. \def\coth{\mathop{\famzero coth}\nolimits}
  123. \def\csc{\mathop{\famzero csc}\nolimits}
  124. \def\deg{\mathop{\famzero deg}\nolimits}
  125. \def\det{\mathop{\famzero det}}
  126. \def\dim{\mathop{\famzero dim}\nolimits}
  127. \def\exp{\mathop{\famzero exp}\nolimits}
  128. \def\gcd{\mathop{\famzero gcd}}
  129. \def\hom{\mathop{\famzero hom}\nolimits}
  130. \def\inf{\mathop{\famzero inf}}
  131. \def\ker{\mathop{\famzero ker}\nolimits}
  132. \def\lg{\mathop{\famzero lg}\nolimits}
  133. \def\lim{\mathop{\famzero lim}}
  134. \def\liminf{\mathop{\famzero lim\,inf}}
  135. \def\limsup{\mathop{\famzero lim\,sup}}
  136. \def\ln{\mathop{\famzero ln}\nolimits}
  137. \def\log{\mathop{\famzero log}\nolimits}
  138. \def\max{\mathop{\famzero max}}
  139. \def\min{\mathop{\famzero min}}
  140. \def\Pr{\mathop{\famzero Pr}}
  141. \def\sec{\mathop{\famzero sec}\nolimits}
  142. \def\sin{\mathop{\famzero sin}\nolimits}
  143. \def\sinh{\mathop{\famzero sinh}\nolimits}
  144. \def\sup{\mathop{\famzero sup}}
  145. \def\tan{\mathop{\famzero tan}\nolimits}
  146. \def\tanh{\mathop{\famzero tanh}\nolimits}
  147. % Mod-It
  148. \def\textfont@#1#2{\def#1{\relax\ifmmode
  149.     \errmessage{Usa \string#1\space solo nel testo}\else#2\fi}}
  150. \textfont@\rm\tenrm
  151. \textfont@\it\tenit
  152. \textfont@\sl\tensl
  153. \textfont@\bf\tenbf
  154. \textfont@\smc\tensmc
  155. \let\ic@=\/
  156. \def\/{\unskip\ic@}
  157. \def\textfonti{\the\textfont1 }
  158. \def\t#1#2{{\edef\next{\the\font}\textfonti\accent"7F \next#1#2}}
  159. \let\B=\=
  160. \let\D=\.
  161. \def~{\unskip\nobreak\ \ignorespaces}
  162. {\catcode`\@=\active
  163. \gdef\@{\char'100 }}
  164. \atdef@-{\leavevmode\futurelet\next\athyph@}
  165. \def\athyph@{\ifx\next-\let\next=\athyph@@
  166.   \else\let\next=\athyph@@@\fi\next}
  167. \def\athyph@@@{\hbox{-}}
  168. \def\athyph@@#1{\futurelet\next\athyph@@@@}
  169. \def\athyph@@@@{\if\next-\def\next##1{\hbox{---}}\else
  170.     \def\next{\hbox{--}}\fi\next}
  171. \def\.{.\spacefactor=\@m}
  172. \atdef@.{\null.}
  173. \atdef@,{\null,}
  174. \atdef@;{\null;}
  175. \atdef@:{\null:}
  176. \atdef@?{\null?}
  177. \atdef@!{\null!}   
  178. \def\srdr@{\thinspace}                     
  179. \def\drsr@{\kern.02778em}
  180. \def\sldl@{\kern.02778em}
  181. \def\dlsl@{\thinspace}
  182. \atdef@"{\unskip\futurelet\next\atqq@}
  183. \def\atqq@{\ifx\next\Space@\def\next. {\atqq@@}\else
  184.          \def\next.{\atqq@@}\fi\next.}
  185. \def\atqq@@{\futurelet\next\atqq@@@}
  186. \def\atqq@@@{\ifx\next`\def\next`{\atqql@}\else\def\next'{\atqqr@}\fi\next}
  187. \def\atqql@{\futurelet\next\atqql@@}
  188. \def\atqql@@{\ifx\next`\def\next`{\sldl@``}\else\def\next{\dlsl@`}\fi\next}
  189. \def\atqqr@{\futurelet\next\atqqr@@}
  190. \def\atqqr@@{\ifx\next'\def\next'{\srdr@''}\else\def\next{\drsr@'}\fi\next}
  191. \def\flushpar{\par\noindent}
  192. \def\textfontii{\the\textfont2 }
  193. \def\{{\relax\ifmmode\lbrace\else
  194.     {\textfontii f}\spacefactor=\@m\fi}
  195. \def\}{\relax\ifmmode\rbrace\else
  196.     \let\@sf=\empty\ifhmode\edef\@sf{\spacefactor=\the\spacefactor}\fi
  197.       {\textfontii g}\@sf\relax\fi}   
  198. % Mod-It
  199. \def\nonhmodeerr@#1{\errmessage
  200.      {\string#1\space consentito solo nel testo}}
  201. \def\linebreak{\relax\ifhmode\unskip\break\else
  202.     \nonhmodeerr@\linebreak\fi}
  203. \def\allowlinebreak{\relax
  204.    \ifhmode\allowbreak\else\nonhmodeerr@\allowlinebreak\fi}
  205. \newskip\saveskip@
  206. \def\nolinebreak{\relax\ifhmode\saveskip@=\lastskip\unskip
  207.   \nobreak\ifdim\saveskip@>\z@\hskip\saveskip@\fi
  208.    \else\nonhmodeerr@\nolinebreak\fi}
  209. \def\newline{\relax\ifhmode\null\hfil\break
  210.     \else\nonhmodeerr@\newline\fi}
  211. % Mod-It
  212. \def\nonmathaerr@#1{\errmessage
  213.      {\string#1\space non consentito in modo matematico display}}
  214. % Mod-It
  215. \def\nonmathberr@#1{\errmessage{\string#1\space consentito solo in modo matematico}}
  216. \def\mathbreak{\relax\ifmmode\ifinner\break\else
  217.    \nonmathaerr@\mathbreak\fi\else\nonmathberr@\mathbreak\fi}
  218. \def\nomathbreak{\relax\ifmmode\ifinner\nobreak\else
  219.     \nonmathaerr@\nomathbreak\fi\else\nonmathberr@\nomathbreak\fi}
  220. \def\allowmathbreak{\relax\ifmmode\ifinner\allowbreak\else
  221.      \nonmathaerr@\allowmathbreak\fi\else\nonmathberr@\allowmathbreak\fi}
  222. % Mod-It
  223. \def\pagebreak{\relax\ifmmode
  224.    \ifinner\errmessage{\string\pagebreak\space
  225.      consentito solo in modo matematico display}\else\postdisplaypenalty-\@M\fi
  226.    \else\ifvmode\penalty-\@M\else\edef\spacefactor@
  227.        {\spacefactor=\the\spacefactor}\vadjust{\penalty-\@M}\spacefactor@
  228.         \relax\fi\fi}
  229. \def\nopagebreak{\relax\ifmmode
  230.      \ifinner\errmessage{\string\nopagebreak\space
  231.      consentito solo in modo matematico display}\else\postdisplaypenalty\@M\fi
  232.     \else\ifvmode\nobreak\else\edef\spacefactor@
  233.         {\spacefactor=\the\spacefactor}\vadjust{\penalty\@M}\spacefactor@
  234.          \relax\fi\fi}
  235. \def\newpage{\relax\ifvmode\vfill\penalty-\@M\else\nonvmodeerr@\newpage\fi}
  236. \def\nonvmodeerr@#1{\errmessage
  237.     {\string#1\space consentito solo tra paragrafi}}
  238. \def\smallpagebreak{\relax\ifvmode\smallbreak
  239.       \else\nonvmodeerr@\smallpagebreak\fi}
  240. \def\medpagebreak{\relax\ifvmode\medbreak
  241.        \else\nonvmodeerr@\medpagebreak\fi}
  242. \def\bigpagebreak{\relax\ifvmode\bigbreak
  243.       \else\nonvmodeerr@\bigpagebreak\fi}
  244. \newdimen\captionwidth@
  245. \captionwidth@=\hsize
  246. \advance\captionwidth@ by -1.5in
  247. \def\caption#1{}
  248. \def\topspace#1{\gdef\thespace@{#1}\ifvmode\def\next
  249.     {\futurelet\next\topspace@}\else\def\next{\nonvmodeerr@\topspace}\fi\next}
  250. \def\topspace@{\ifx\next\Space@\def\next. {\futurelet\next\topspace@@}\else
  251.      \def\next.{\futurelet\next\topspace@@}\fi\next.}
  252. \def\topspace@@{\ifx\next\caption\let\next\topspace@@@\else
  253.     \let\next\topspace@@@@\fi\next}
  254.  \def\topspace@@@@{\topinsert\vbox to 
  255.        \thespace@{}\endinsert}
  256. \def\topspace@@@\caption#1{\topinsert\vbox to
  257.     \thespace@{}\nobreak
  258.       \smallskip
  259.     \setbox\z@=\hbox{\noindent\ignorespaces#1\unskip}%
  260.    \ifdim\wd\z@>\captionwidth@
  261.    \centerline{\vbox{\hsize=\captionwidth@\noindent\ignorespaces#1\unskip}}%
  262.    \else\centerline{\box\z@}\fi\endinsert}
  263. \def\midspace#1{\gdef\thespace@{#1}\ifvmode\def\next
  264.     {\futurelet\next\midspace@}\else\def\next{\nonvmodeerr@\midspace}\fi\next}
  265. \def\midspace@{\ifx\next\Space@\def\next. {\futurelet\next\midspace@@}\else
  266.      \def\next.{\futurelet\next\midspace@@}\fi\next.}
  267. \def\midspace@@{\ifx\next\caption\let\next\midspace@@@\else
  268.     \let\next\midspace@@@@\fi\next}
  269.  \def\midspace@@@@{\midinsert\vbox to 
  270.        \thespace@{}\endinsert}
  271. \def\midspace@@@\caption#1{\midinsert\vbox to
  272.     \thespace@{}\nobreak
  273.       \smallskip
  274.       \setbox\z@=\hbox{\noindent\ignorespaces#1\unskip}%
  275.       \ifdim\wd\z@>\captionwidth@
  276.     \centerline{\vbox{\hsize=\captionwidth@\noindent\ignorespaces#1\unskip}}%
  277.     \else\centerline{\box\z@}\fi\endinsert}
  278. \mathchardef\prime@="0230
  279. \def\prime{{{}\prime@{}}}
  280. \def\prim@s{\prime@\futurelet\next\pr@m@s}
  281. \let\dsize=\displaystyle
  282. \let\tsize=\textstyle
  283. \def\,{\relax\ifmmode\mskip\thinmuskip\else\thinspace\fi}
  284. \def\!{\relax\ifmmode\mskip-\thinmuskip\else\negthinspace\fi}
  285. \def\frac#1#2{{#1\over#2}}
  286. \def\dfrac#1#2{{\displaystyle{#1\over#2}}}
  287. \def\tfrac#1#2{{\textstyle{#1\over#2}}}
  288. \def\binom#1#2{{#1\choose #2}}
  289. \def\dbinom#1#2{{\displaystyle{#1\choose #2}}}    
  290. \def\tbinom#1#2{{\textstyle{#1\choose #2}}}
  291. \def\:{\nobreak\hskip.1111em{:}\hskip.3333em plus .0555em\relax}
  292. \def\intic@{\mathchoice{\hskip5\p@}{\hskip4\p@}{\hskip4\p@}{\hskip4\p@}}
  293. \def\negintic@
  294.  {\mathchoice{\hskip-5\p@}{\hskip-4\p@}{\hskip-4\p@}{\hskip-4\p@}}
  295. \def\intkern@{\mathchoice{\!\!\!}{\!\!}{\!\!}{\!\!}}
  296. \def\intdots@{\mathchoice{\cdots}{{\cdotp}\mkern1.5mu
  297.     {\cdotp}\mkern1.5mu{\cdotp}}{{\cdotp}\mkern1mu{\cdotp}\mkern1mu
  298.       {\cdotp}}{{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}}
  299. \newcount\intno@             
  300. \def\iint{\intno@=\tw@\futurelet\next\ints@} 
  301. \def\iiint{\intno@=\thr@@\futurelet\next\ints@}
  302. \def\iiiint{\intno@=4 \futurelet\next\ints@}
  303. \def\idotsint{\intno@=\z@\futurelet\next\ints@}
  304. \def\ints@{\findlimits@\ints@@}
  305. \newif\iflimtoken@
  306. \newif\iflimits@
  307. \def\findlimits@{\limtoken@false\limits@false\ifx\next\limits
  308.  \limtoken@true\limits@true\else\ifx\next\nolimits\limtoken@true\limits@false
  309.     \fi\fi}
  310. \def\multintlimits@{\intop\ifnum\intno@=\z@\intdots@
  311.   \else\intkern@\fi
  312.     \ifnum\intno@>\tw@\intop\intkern@\fi
  313.      \ifnum\intno@>\thr@@\intop\intkern@\fi\intop}
  314. \def\multint@{\int\ifnum\intno@=\z@\intdots@\else\intkern@\fi
  315.    \ifnum\intno@>\tw@\int\intkern@\fi
  316.     \ifnum\intno@>\thr@@\int\intkern@\fi\int}
  317. \def\ints@@{\iflimtoken@\def\ints@@@{\iflimits@
  318.    \negintic@\mathop{\intic@\multintlimits@}\limits\else
  319.     \multint@\nolimits\fi\eat@}\else
  320.      \def\ints@@@{\multint@\nolimits}\fi\ints@@@}
  321. \def\Sb{_\bgroup\vspace@
  322.         \baselineskip=\fontdimen10 \scriptfont\tw@
  323.         \advance\baselineskip by \fontdimen12 \scriptfont\tw@
  324.         \lineskip=\thr@@\fontdimen8 \scriptfont\thr@@
  325.         \lineskiplimit=\thr@@\fontdimen8 \scriptfont\thr@@
  326.         \Let@\vbox\bgroup\halign\bgroup \hfil$\scriptstyle
  327.             {##}$\hfil\cr}
  328. \def\endSb{\crcr\egroup\egroup\egroup}
  329. \def\Sp{^\bgroup\vspace@
  330.         \baselineskip=\fontdimen10 \scriptfont\tw@
  331.         \advance\baselineskip by \fontdimen12 \scriptfont\tw@
  332.         \lineskip=\thr@@\fontdimen8 \scriptfont\thr@@
  333.         \lineskiplimit=\thr@@\fontdimen8 \scriptfont\thr@@
  334.         \Let@\vbox\bgroup\halign\bgroup \hfil$\scriptstyle
  335.             {##}$\hfil\cr}
  336. \def\endSp{\crcr\egroup\egroup\egroup}
  337. \def\Let@{\relax\iffalse{\fi\let\\=\cr\iffalse}\fi}
  338. \def\vspace@{\def\vspace##1{\noalign{\vskip##1 }}}
  339. \def\aligned{\,\vcenter\bgroup\vspace@\Let@\openup\jot\m@th\ialign
  340.   \bgroup \strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil\crcr}
  341. \def\endaligned{\crcr\egroup\egroup}
  342. \def\matrix{\,\vcenter\bgroup\Let@\vspace@
  343.     \normalbaselines
  344.   \m@th\ialign\bgroup\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
  345.     \mathstrut\crcr\noalign{\kern-\baselineskip}}
  346. \def\endmatrix{\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}\egroup
  347.                 \egroup\,}
  348. \newtoks\hashtoks@
  349. \hashtoks@={#}
  350. \def\format{\crcr\egroup\iffalse{\fi\ifnum`}=0 \fi\format@}
  351. \def\format@#1\\{\def\preamble@{#1}%
  352.   \def\c{\hfil$\the\hashtoks@$\hfil}%
  353.   \def\r{\hfil$\the\hashtoks@$}%
  354.   \def\l{$\the\hashtoks@$\hfil}%
  355.   \setbox\z@=\hbox{\xdef\Preamble@{\preamble@}}\ifnum`{=0 \fi\iffalse}\fi
  356.    \ialign\bgroup\span\Preamble@\crcr}
  357. \def\pmatrix{\left(\matrix} \def\endpmatrix{\endmatrix\right)}
  358. \let\hdots=\ldots
  359. \def\cases{\left\{\,\vcenter\bgroup\vspace@
  360.      \normalbaselines\openup\jot\m@th
  361.        \Let@\ialign\bgroup$##$\hfil&\quad$##$\hfil\crcr
  362.       \mathstrut\crcr\noalign{\kern-\baselineskip}}
  363. \def\endcases{\endmatrix\right.}
  364. \newif\iftagsleft@
  365. \tagsleft@true
  366. \def\TagsOnRight{\global\tagsleft@false}
  367. \def\tag#1$${\iftagsleft@\leqno\else\eqno\fi
  368.  \hbox{\def\pagebreak{\global\postdisplaypenalty-\@M}%
  369.  \def\nopagebreak{\global\postdisplaypenalty\@M}\rm(#1\unskip)}%
  370.   $$\postdisplaypenalty\z@\ignorespaces}
  371. \interdisplaylinepenalty=\@M
  372. \def\allowdisplaybreak@{\def\allowdisplaybreak{\noalign{\allowbreak}}}
  373. \def\displaybreak@{\def\displaybreak{\noalign{\break}}}
  374. \def\align#1\endalign{\def\tag{&}\vspace@\allowdisplaybreak@\displaybreak@
  375.   \iftagsleft@\lalign@#1\endalign\else
  376.    \ralign@#1\endalign\fi}
  377. \def\ralign@#1\endalign{\displ@y\Let@\tabskip\centering\halign to\displaywidth
  378.      {\hfil$\displaystyle{##}$\tabskip=\z@&$\displaystyle{{}##}$\hfil
  379.        \tabskip=\centering&\llap{\hbox{(\rm##\unskip)}}\tabskip\z@\crcr
  380.              #1\crcr}}
  381. \def\lalign@
  382.  #1\endalign{\displ@y\Let@\tabskip\centering\halign to \displaywidth
  383.    {\hfil$\displaystyle{##}$\tabskip=\z@&$\displaystyle{{}##}$\hfil
  384.    \tabskip=\centering&\kern-\displaywidth
  385.         \rlap{\hbox{(\rm##\unskip)}}\tabskip=\displaywidth\crcr
  386.                #1\crcr}}
  387. \def\overrightarrow{\mathpalette\overrightarrow@}
  388. \def\overrightarrow@#1#2{\vbox{\ialign{$##$\cr
  389.     #1{-}\mkern-6mu\cleaders\hbox{$#1\mkern-2mu{-}\mkern-2mu$}\hfill
  390.      \mkern-6mu{\to}\cr
  391.      \noalign{\kern -1\p@\nointerlineskip}
  392.      \hfil#1#2\hfil\cr}}}
  393. \def\overleftarrow{\mathpalette\overleftarrow@}
  394. \def\overleftarrow@#1#2{\vbox{\ialign{$##$\cr
  395.      #1{\leftarrow}\mkern-6mu\cleaders\hbox{$#1\mkern-2mu{-}\mkern-2mu$}\hfill
  396.       \mkern-6mu{-}\cr
  397.      \noalign{\kern -1\p@\nointerlineskip}
  398.      \hfil#1#2\hfil\cr}}}
  399. \def\overleftrightarrow{\mathpalette\overleftrightarrow@}
  400. \def\overleftrightarrow@#1#2{\vbox{\ialign{$##$\cr
  401.      #1{\leftarrow}\mkern-6mu\cleaders\hbox{$#1\mkern-2mu{-}\mkern-2mu$}\hfill
  402.        \mkern-6mu{\to}\cr
  403.     \noalign{\kern -1\p@\nointerlineskip}
  404.       \hfil#1#2\hfil\cr}}}
  405. \def\underrightarrow{\mathpalette\underrightarrow@}
  406. \def\underrightarrow@#1#2{\vtop{\ialign{$##$\cr
  407.     \hfil#1#2\hfil\cr
  408.      \noalign{\kern -1\p@\nointerlineskip}
  409.     #1{-}\mkern-6mu\cleaders\hbox{$#1\mkern-2mu{-}\mkern-2mu$}\hfill
  410.      \mkern-6mu{\to}\cr}}}
  411. \def\underleftarrow{\mathpalette\underleftarrow@}
  412. \def\underleftarrow@#1#2{\vtop{\ialign{$##$\cr
  413.      \hfil#1#2\hfil\cr
  414.      \noalign{\kern -1\p@\nointerlineskip}
  415.      #1{\leftarrow}\mkern-6mu\cleaders\hbox{$#1\mkern-2mu{-}\mkern-2mu$}\hfill
  416.       \mkern-6mu{-}\cr}}}
  417. \def\underleftrightarrow{\mathpalette\underleftrightarrow@}
  418. \def\underleftrightarrow@#1#2{\vtop{\ialign{$##$\cr
  419.       \hfil#1#2\hfil\cr
  420.     \noalign{\kern -1\p@\nointerlineskip}
  421.      #1{\leftarrow}\mkern-6mu\cleaders\hbox{$#1\mkern-2mu{-}\mkern-2mu$}\hfill
  422.        \mkern-6mu{\to}\cr}}}
  423. \def\sqrt#1{\radical"270370 {#1}}
  424. \def\dots{\relax\ifmmode\let\next=\ldots\else\let\next=\tdots@\fi\next}
  425. \def\tdots@{\unskip\ \tdots@@}
  426. \def\tdots@@{\futurelet\next\tdots@@@}
  427. \def\tdots@@@{$\mathinner{\ldotp\ldotp\ldotp}\,
  428.    \ifx\next,$\else
  429.    \ifx\next.\,$\else
  430.    \ifx\next;\,$\else
  431.    \ifx\next:\,$\else
  432.    \ifx\next?\,$\else
  433.    \ifx\next!\,$\else
  434.    $ \fi\fi\fi\fi\fi\fi}
  435. \def\text{\relax\ifmmode\let\next=\text@\else\let\next=\text@@\fi\next}
  436. \def\text@@#1{\hbox{#1}}
  437. \def\text@#1{\mathchoice
  438.  {\hbox{\everymath{\displaystyle}\def\textfonti{\the\textfont1 }%
  439.     \def\textfontii{\the\textfont2 }\textdef@@ T#1}}
  440.  {\hbox{\everymath{\textstyle}\def\textfonti{\the\textfont1 }%
  441.     \def\textfontii{\the\textfont2 }\textdef@@ T#1}}
  442.  {\hbox{\everymath{\scriptstyle}\def\textfonti{\the\scriptfont1 }%
  443.    \def\textfontii{\the\scriptfont2 }\textdef@@ S\rm#1}}
  444.  {\hbox{\everymath{\scriptscriptstyle}\def\textfonti{\the\scriptscriptfont1 }%
  445.    \def\textfontii{\the\scriptscriptfont2 }\textdef@@ s\rm#1}}}
  446. \def\textdef@@#1{\textdef@#1\rm \textdef@#1\bf
  447.    \textdef@#1\sl \textdef@#1\it}
  448. \def\rmfam{0}
  449. \def\textdef@#1#2{\def\next{\csname\expandafter\eat@\string#2fam\endcsname}%
  450. \if S#1\edef#2{\the\scriptfont\next\relax}%
  451.  \else\if s#1\edef#2{\the\scriptscriptfont\next\relax}%
  452.  \else\edef#2{\the\textfont\next\relax}\fi\fi}
  453. \scriptfont\itfam=\tenit \scriptscriptfont\itfam=\tenit
  454. \scriptfont\slfam=\tensl \scriptscriptfont\slfam=\tensl
  455. \mathcode`\0="0030
  456. \mathcode`\1="0031
  457. \mathcode`\2="0032
  458. \mathcode`\3="0033
  459. \mathcode`\4="0034
  460. \mathcode`\5="0035
  461. \mathcode`\6="0036
  462. \mathcode`\7="0037
  463. \mathcode`\8="0038
  464. \mathcode`\9="0039
  465. \def\Cal{\relax\ifmmode\let\next=\Cal@\else
  466.      \def\next{\errmessage{Usa \string\Cal\space solo in modo matematico}}\fi\next}
  467. \def\Cal@#1{{\fam2 #1}}
  468. \def\bold{\relax\ifmmode\let\next=\bold@\else
  469.    \def\next{\errmessage{Usa \string\bold\space solo in modo
  470.       matematico}}\fi\next}\def\bold@#1{{\fam\bffam #1}}
  471. \mathchardef\Gamma="0000
  472. \mathchardef\Delta="0001
  473. \mathchardef\Theta="0002
  474. \mathchardef\Lambda="0003
  475. \mathchardef\Xi="0004
  476. \mathchardef\Pi="0005
  477. \mathchardef\Sigma="0006
  478. \mathchardef\Upsilon="0007
  479. \mathchardef\Phi="0008
  480. \mathchardef\Psi="0009
  481. \mathchardef\Omega="000A
  482. \mathchardef\varGamma="0100
  483. \mathchardef\varDelta="0101
  484. \mathchardef\varTheta="0102
  485. \mathchardef\varLambda="0103
  486. \mathchardef\varXi="0104
  487. \mathchardef\varPi="0105
  488. \mathchardef\varSigma="0106
  489. \mathchardef\varUpsilon="0107
  490. \mathchardef\varPhi="0108
  491. \mathchardef\varPsi="0109
  492. \mathchardef\varOmega="010A
  493. \font\dummyft@=dummy
  494. \fontdimen1 \dummyft@=\z@
  495. \fontdimen2 \dummyft@=\z@
  496. \fontdimen3 \dummyft@=\z@
  497. \fontdimen4 \dummyft@=\z@
  498. \fontdimen5 \dummyft@=\z@
  499. \fontdimen6 \dummyft@=\z@
  500. \fontdimen7 \dummyft@=\z@
  501. \fontdimen8 \dummyft@=\z@
  502. \fontdimen9 \dummyft@=\z@
  503. \fontdimen10 \dummyft@=\z@
  504. \fontdimen11 \dummyft@=\z@
  505. \fontdimen12 \dummyft@=\z@
  506. \fontdimen13 \dummyft@=\z@
  507. \fontdimen14 \dummyft@=\z@
  508. \fontdimen15 \dummyft@=\z@
  509. \fontdimen16 \dummyft@=\z@
  510. \fontdimen17 \dummyft@=\z@
  511. \fontdimen18 \dummyft@=\z@
  512. \fontdimen19 \dummyft@=\z@
  513. \fontdimen20 \dummyft@=\z@
  514. \fontdimen21 \dummyft@=\z@
  515. \fontdimen22 \dummyft@=\z@
  516. \def\fontlist@{\\{\tenrm}\\{\sevenrm}\\{\fiverm}\\{\teni}\\{\seveni}%
  517.  \\{\fivei}\\{\tensy}\\{\sevensy}\\{\fivesy}\\{\tenex}\\{\tenbf}\\{\sevenbf}%
  518.  \\{\fivebf}\\{\tensl}\\{\tenit}\\{\tensmc}}
  519. \def\dodummy@{{\def\\##1{\global\let##1=\dummyft@}\fontlist@}}
  520. \newif\ifsyntax@
  521. \newcount\countxviii@
  522. \def\newtoks@{\alloc@5\toks\toksdef\@cclvi}
  523. \def\nopages@{\output={\setbox\z@=\box\@cclv \deadcycles=\z@}\newtoks@\output}
  524. \def\syntax{\syntax@true\dodummy@\countxviii@=\count18
  525. \loop \ifnum\countxviii@ > \z@ \textfont\countxviii@=\dummyft@
  526.    \scriptfont\countxviii@=\dummyft@ \scriptscriptfont\countxviii@=\dummyft@
  527.      \advance\countxviii@ by-\@ne\repeat
  528. \dummyft@\tracinglostchars=\z@
  529.   \nopages@\frenchspacing\hbadness=\@M}
  530. \def\magstep#1{\ifcase#1 1000\or
  531.  1200\or 1440\or 1728\or 2074\or 2488\or 
  532.  \errmessage{\string\magstep\space consentito solo fino a 5}\fi\relax}
  533. {\lccode`\2=`\p \lccode`\3=`\t 
  534.  \lowercase{\gdef\tru@#123{#1truept}}}
  535. \def\scaledocument#1{\mag=#1\relax}
  536. \def\scaletype#1{\mag=#1\relax
  537.  \hsize=\expandafter\tru@\the\hsize
  538.  \vsize=\expandafter\tru@\the\vsize
  539.  \dimen\footins=\expandafter\tru@\the\dimen\footins}
  540. \def\maxfootnotes#1{\dimen\footins=#1\relax}
  541. \def\scalefont#1#2\andcallit#3{\edef\font@{\the\font}#1\font#3=
  542.   \fontname\font\space scaled #2\relax\font@}
  543. \def\Mag@#1#2{\ifdim#1<1pt\multiply#1 #2\relax\divide#1 1000 \else
  544.   \ifdim#1<10pt\divide#1 10 \multiply#1 #2\relax\divide#1 100\else
  545.   \divide#1 100 \multiply#1 #2\relax\divide#1 10 \fi\fi}
  546. \def\scalelinespacing#1{\Mag@\baselineskip{#1}\Mag@\lineskip{#1}%
  547.   \Mag@\lineskiplimit{#1}}
  548. \def\wlog#1{\immediate\write-1{#1}}
  549. \catcode`\@=\active
  550.  
  551.